# 使用golang:1.23-alpine作为基础镜像构建Go应用
# 设置工作目录为/app
# 将当前目录下的所有文件复制到容器的/app目录中
# 整理并下载Go模块依赖
# 编译Go应用，生成可执行文件main
# 设置容器启动时运行main可执行文件
FROM golang:1.23-alpine
WORKDIR /app

# 安装构建C库所需的依赖
RUN apk add --no-cache build-base

# 复制Go服务文件
COPY . .

# 构建C共享库
RUN gcc -fPIC -shared -o libcore.so core.c

# 设置CGO环境变量，使Go程序能够链接C库
ENV CGO_ENABLED=1

# 设置GOPROXY以解决网络连接问题
ENV GOPROXY=https://goproxy.cn,direct

RUN go mod tidy
RUN go build -o main .
CMD ["./main"]